home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / util / XMLUtils.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  5.3 KB  |  131 lines

  1. package java.util;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import javax.xml.parsers.DocumentBuilder;
  7. import javax.xml.parsers.DocumentBuilderFactory;
  8. import javax.xml.parsers.ParserConfigurationException;
  9. import javax.xml.transform.Transformer;
  10. import javax.xml.transform.TransformerConfigurationException;
  11. import javax.xml.transform.TransformerException;
  12. import javax.xml.transform.TransformerFactory;
  13. import javax.xml.transform.dom.DOMSource;
  14. import javax.xml.transform.stream.StreamResult;
  15. import org.w3c.dom.Document;
  16. import org.w3c.dom.Element;
  17. import org.w3c.dom.Node;
  18. import org.w3c.dom.NodeList;
  19. import org.xml.sax.InputSource;
  20. import org.xml.sax.SAXException;
  21.  
  22. class XMLUtils {
  23.    private static final String PROPS_DTD_URI = "http://java.sun.com/dtd/properties.dtd";
  24.    private static final String PROPS_DTD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!-- DTD for properties --><!ELEMENT properties ( comment?, entry* ) ><!ATTLIST properties version CDATA #FIXED \"1.0\"><!ELEMENT comment (#PCDATA) ><!ELEMENT entry (#PCDATA) ><!ATTLIST entry  key CDATA #REQUIRED>";
  25.    private static final String EXTERNAL_XML_VERSION = "1.0";
  26.  
  27.    static void load(Properties var0, InputStream var1) throws IOException, InvalidPropertiesFormatException {
  28.       Object var2 = null;
  29.  
  30.       try {
  31.          var6 = getLoadingDoc(var1);
  32.       } catch (SAXException var5) {
  33.          throw new InvalidPropertiesFormatException(var5);
  34.       }
  35.  
  36.       Element var3 = (Element)var6.getChildNodes().item(1);
  37.       String var4 = var3.getAttribute("version");
  38.       if (var4.compareTo("1.0") > 0) {
  39.          throw new InvalidPropertiesFormatException("Exported Properties file format version " + var4 + " is not supported. This java installation can read" + " versions " + "1.0" + " or older. You" + " may need to install a newer version of JDK.");
  40.       } else {
  41.          importProperties(var0, var3);
  42.       }
  43.    }
  44.  
  45.    static Document getLoadingDoc(InputStream var0) throws SAXException, IOException {
  46.       DocumentBuilderFactory var1 = DocumentBuilderFactory.newInstance();
  47.       var1.setIgnoringElementContentWhitespace(true);
  48.       var1.setValidating(true);
  49.       var1.setCoalescing(true);
  50.       var1.setIgnoringComments(true);
  51.  
  52.       try {
  53.          DocumentBuilder var2 = var1.newDocumentBuilder();
  54.          var2.setEntityResolver(new Resolver((1)null));
  55.          var2.setErrorHandler(new EH((1)null));
  56.          InputSource var3 = new InputSource(var0);
  57.          return var2.parse(var3);
  58.       } catch (ParserConfigurationException var4) {
  59.          throw new Error(var4);
  60.       }
  61.    }
  62.  
  63.    static void importProperties(Properties var0, Element var1) {
  64.       NodeList var2 = var1.getChildNodes();
  65.       int var3 = var2.getLength();
  66.       int var4 = var3 > 0 && var2.item(0).getNodeName().equals("comment") ? 1 : 0;
  67.  
  68.       for(int var5 = var4; var5 < var3; ++var5) {
  69.          Element var6 = (Element)var2.item(var5);
  70.          if (var6.hasAttribute("key")) {
  71.             Node var7 = var6.getFirstChild();
  72.             String var8 = var7 == null ? "" : var7.getNodeValue();
  73.             var0.setProperty(var6.getAttribute("key"), var8);
  74.          }
  75.       }
  76.  
  77.    }
  78.  
  79.    static void save(Properties var0, OutputStream var1, String var2, String var3) throws IOException {
  80.       DocumentBuilderFactory var4 = DocumentBuilderFactory.newInstance();
  81.       DocumentBuilder var5 = null;
  82.  
  83.       try {
  84.          var5 = var4.newDocumentBuilder();
  85.       } catch (ParserConfigurationException var12) {
  86.          assert false;
  87.       }
  88.  
  89.       Document var6 = var5.newDocument();
  90.       Element var7 = (Element)var6.appendChild(var6.createElement("properties"));
  91.       if (var2 != null) {
  92.          Element var8 = (Element)var7.appendChild(var6.createElement("comment"));
  93.          var8.appendChild(var6.createTextNode(var2));
  94.       }
  95.  
  96.       for(String var10 : var0.keySet()) {
  97.          Element var11 = (Element)var7.appendChild(var6.createElement("entry"));
  98.          var11.setAttribute("key", var10);
  99.          var11.appendChild(var6.createTextNode(var0.getProperty(var10)));
  100.       }
  101.  
  102.       emitDocument(var6, var1, var3);
  103.    }
  104.  
  105.    static void emitDocument(Document var0, OutputStream var1, String var2) throws IOException {
  106.       TransformerFactory var3 = TransformerFactory.newInstance();
  107.       Transformer var4 = null;
  108.  
  109.       try {
  110.          var4 = var3.newTransformer();
  111.          var4.setOutputProperty("doctype-system", "http://java.sun.com/dtd/properties.dtd");
  112.          var4.setOutputProperty("indent", "yes");
  113.          var4.setOutputProperty("method", "xml");
  114.          var4.setOutputProperty("encoding", var2);
  115.       } catch (TransformerConfigurationException var10) {
  116.          assert false;
  117.       }
  118.  
  119.       DOMSource var5 = new DOMSource(var0);
  120.       StreamResult var6 = new StreamResult(var1);
  121.  
  122.       try {
  123.          var4.transform(var5, var6);
  124.       } catch (TransformerException var9) {
  125.          IOException var8 = new IOException();
  126.          var8.initCause(var9);
  127.          throw var8;
  128.       }
  129.    }
  130. }
  131.